Deep copy dash_list too. (_gdk_fb_gc_new): Set default cap_style before
authorAlexander Larsson <alla@lysator.liu.se>
Wed, 13 Jun 2001 15:02:35 +0000 (15:02 +0000)
committerAlexander Larsson <alexl@src.gnome.org>
Wed, 13 Jun 2001 15:02:35 +0000 (15:02 +0000)
2001-06-13  Alexander Larsson  <alla@lysator.liu.se>

* gdk/linux-fb/gdkgc-fb.c (gdk_gc_copy):
Deep copy dash_list too.
(_gdk_fb_gc_new): Set default cap_style before
setting values.

ChangeLog
ChangeLog.pre-2-0
ChangeLog.pre-2-10
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gdk/linux-fb/gdkgc-fb.c

index 3223db57e2361a07005f12bae8b1dc5a9f086791..11e94bec006a654d9fc28a5750b884b16a18fb7c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2001-06-13  Alexander Larsson  <alla@lysator.liu.se>
+
+       * gdk/linux-fb/gdkgc-fb.c (gdk_gc_copy):
+       Deep copy dash_list too.
+       (_gdk_fb_gc_new): Set default cap_style before
+       setting values.
+
 2001-06-12  Alexander Larsson  <alla@lysator.liu.se>
 
        * gdk/linux-fb/gdkkeyboard-fb.c (gdk_keymap_get_default,
index 3223db57e2361a07005f12bae8b1dc5a9f086791..11e94bec006a654d9fc28a5750b884b16a18fb7c 100644 (file)
@@ -1,3 +1,10 @@
+2001-06-13  Alexander Larsson  <alla@lysator.liu.se>
+
+       * gdk/linux-fb/gdkgc-fb.c (gdk_gc_copy):
+       Deep copy dash_list too.
+       (_gdk_fb_gc_new): Set default cap_style before
+       setting values.
+
 2001-06-12  Alexander Larsson  <alla@lysator.liu.se>
 
        * gdk/linux-fb/gdkkeyboard-fb.c (gdk_keymap_get_default,
index 3223db57e2361a07005f12bae8b1dc5a9f086791..11e94bec006a654d9fc28a5750b884b16a18fb7c 100644 (file)
@@ -1,3 +1,10 @@
+2001-06-13  Alexander Larsson  <alla@lysator.liu.se>
+
+       * gdk/linux-fb/gdkgc-fb.c (gdk_gc_copy):
+       Deep copy dash_list too.
+       (_gdk_fb_gc_new): Set default cap_style before
+       setting values.
+
 2001-06-12  Alexander Larsson  <alla@lysator.liu.se>
 
        * gdk/linux-fb/gdkkeyboard-fb.c (gdk_keymap_get_default,
index 3223db57e2361a07005f12bae8b1dc5a9f086791..11e94bec006a654d9fc28a5750b884b16a18fb7c 100644 (file)
@@ -1,3 +1,10 @@
+2001-06-13  Alexander Larsson  <alla@lysator.liu.se>
+
+       * gdk/linux-fb/gdkgc-fb.c (gdk_gc_copy):
+       Deep copy dash_list too.
+       (_gdk_fb_gc_new): Set default cap_style before
+       setting values.
+
 2001-06-12  Alexander Larsson  <alla@lysator.liu.se>
 
        * gdk/linux-fb/gdkkeyboard-fb.c (gdk_keymap_get_default,
index 3223db57e2361a07005f12bae8b1dc5a9f086791..11e94bec006a654d9fc28a5750b884b16a18fb7c 100644 (file)
@@ -1,3 +1,10 @@
+2001-06-13  Alexander Larsson  <alla@lysator.liu.se>
+
+       * gdk/linux-fb/gdkgc-fb.c (gdk_gc_copy):
+       Deep copy dash_list too.
+       (_gdk_fb_gc_new): Set default cap_style before
+       setting values.
+
 2001-06-12  Alexander Larsson  <alla@lysator.liu.se>
 
        * gdk/linux-fb/gdkkeyboard-fb.c (gdk_keymap_get_default,
index 3223db57e2361a07005f12bae8b1dc5a9f086791..11e94bec006a654d9fc28a5750b884b16a18fb7c 100644 (file)
@@ -1,3 +1,10 @@
+2001-06-13  Alexander Larsson  <alla@lysator.liu.se>
+
+       * gdk/linux-fb/gdkgc-fb.c (gdk_gc_copy):
+       Deep copy dash_list too.
+       (_gdk_fb_gc_new): Set default cap_style before
+       setting values.
+
 2001-06-12  Alexander Larsson  <alla@lysator.liu.se>
 
        * gdk/linux-fb/gdkkeyboard-fb.c (gdk_keymap_get_default,
index 3223db57e2361a07005f12bae8b1dc5a9f086791..11e94bec006a654d9fc28a5750b884b16a18fb7c 100644 (file)
@@ -1,3 +1,10 @@
+2001-06-13  Alexander Larsson  <alla@lysator.liu.se>
+
+       * gdk/linux-fb/gdkgc-fb.c (gdk_gc_copy):
+       Deep copy dash_list too.
+       (_gdk_fb_gc_new): Set default cap_style before
+       setting values.
+
 2001-06-12  Alexander Larsson  <alla@lysator.liu.se>
 
        * gdk/linux-fb/gdkkeyboard-fb.c (gdk_keymap_get_default,
index b9252d1561de2f51da544670586e46dfd270e8c8..9a927fbd5eaff65cdb166eaff048cf6aa4dfbb6a 100644 (file)
@@ -75,7 +75,7 @@ _gdk_fb_gc_new (GdkDrawable      *drawable,
 {
   GdkGC *gc;
   GdkGCFBData *private;
-  
+
   gc = GDK_GC (g_object_new (gdk_gc_fb_get_type (), NULL));
 
   private = (GdkGCFBData *)gc;
@@ -86,11 +86,11 @@ _gdk_fb_gc_new (GdkDrawable      *drawable,
     private->values.foreground.green =
     private->values.foreground.blue = 65535;
 
+  private->values.cap_style = GDK_CAP_BUTT;
+
   _gdk_fb_gc_calc_state (gc, _GDK_FB_GC_DEPTH);
 
   gdk_fb_gc_set_values (gc, values, values_mask);
-
-  private->values.cap_style = GDK_CAP_BUTT;
   return gc;
 }
 
@@ -379,33 +379,46 @@ void
 gdk_gc_copy (GdkGC *dst_gc, GdkGC *src_gc)
 {
   GdkGCFBData *dst_private;
+  GdkGCFBData *src_private;
 
+  src_private = GDK_GC_FBDATA (dst_gc);
   dst_private = GDK_GC_FBDATA (dst_gc);
 
   g_return_if_fail (dst_gc != NULL);
   g_return_if_fail (src_gc != NULL);
 
   if (dst_private->clip_region)
-    gdk_region_destroy(dst_private->clip_region);
+    gdk_region_destroy (dst_private->clip_region);
 
   if (dst_private->values_mask & GDK_GC_FONT)
-    gdk_font_unref(dst_private->values.font);
+    gdk_font_unref (dst_private->values.font);
   if (dst_private->values_mask & GDK_GC_TILE)
-    gdk_pixmap_unref(dst_private->values.tile);
+    gdk_pixmap_unref (dst_private->values.tile);
   if (dst_private->values_mask & GDK_GC_STIPPLE)
-    gdk_pixmap_unref(dst_private->values.stipple);
+    gdk_pixmap_unref (dst_private->values.stipple);
   if (dst_private->values_mask & GDK_GC_CLIP_MASK)
-    gdk_pixmap_unref(dst_private->values.clip_mask);
+    gdk_pixmap_unref (dst_private->values.clip_mask);
 
-  *dst_private = *GDK_GC_FBDATA (src_gc);
+  g_free (dst_private->dash_list);
+
+  *dst_private = *src_private;
   if (dst_private->values_mask & GDK_GC_FONT)
-    gdk_font_ref(dst_private->values.font);
+    gdk_font_ref (dst_private->values.font);
   if (dst_private->values_mask & GDK_GC_TILE)
-    gdk_pixmap_ref(dst_private->values.tile);
+    gdk_pixmap_ref (dst_private->values.tile);
   if (dst_private->values_mask & GDK_GC_STIPPLE)
-    gdk_pixmap_ref(dst_private->values.stipple);
+    gdk_pixmap_ref (dst_private->values.stipple);
   if (dst_private->values_mask & GDK_GC_CLIP_MASK)
-    gdk_pixmap_ref(dst_private->values.clip_mask);
+    gdk_pixmap_ref (dst_private->values.clip_mask);
+  
   if (dst_private->clip_region)
-    dst_private->clip_region = gdk_region_copy(dst_private->clip_region);
+    dst_private->clip_region = gdk_region_copy (dst_private->clip_region);
+  
+  if (dst_private->dash_list)
+    {
+      dst_private->dash_list = g_malloc (dst_private->dash_list_len);
+      memcpy (dst_private->dash_list,
+             src_private->dash_list,
+             dst_private->dash_list_len);
+    }
 }